Dalam Elixir, komputasi dipandang sebagai serangkaian transformasi dasar. Data bersifat tidak dapat diubah, dan operator = bukan untuk penugasan, melainkan untuk pencocokan pola.
1. Operator Pencocokan
Pencocokan memungkinkan Anda mengikat nilai ke pola. Jika struktur sisi kiri tidak sesuai dengan sisi kanan, transformasi akan gagal. Elixir menggunakan operator khusus untuk aliran data: Aritmatika (+, -, *, /), Perbandingan (===, !==, >=), dan Gabungan (<> untuk string, ++ untuk daftar).
2. Ekspresi 'with'
Ekspresi with mengatur transformasi bertahap di mana keberhasilan bersyarat. Ini memungkinkan penyambungan pencocokan menggunakan <-. Berbeda dengan operator pencocokan =, jika pencocokan pada <- gagal, ekspresi akan mengembalikan nilai yang tidak cocok alih-alih melemparkan kesalahan.
3. Lingkup dan Sintaks
Di balik layar, with diproses sebagai makro atau pemanggilan fungsi. Variabel yang terikat di dalamnya tidak bocor ke lingkup luar. Sintaks seperti mean = with count = ..., do: sum/count adalah cara berbasis ekspresi untuk menghitung nilai turunan.
$$\text{rata_rata} = \frac{\sum_{i=1}^{n} x_i}{n}$$